序言
json在不同的开发语言中被越来越多的应用,大多数应用在接口。但是也会有一些问题产生。下面就是我在开发过程中遇到的两个关于json的问题,和大家分享一下。
一、在我们平常遇到的json格式正规的应该是下面这种:
[{"data":{"hello":"1222"},"type":"12349999","date":"2014-10-30 17:6:9","user":"123","time_stamp":1351587969902}, {"data":{"hello":"world"},"type":"777","date":"2011-10-30 17:12:53","user":"0000","time_stamp":1351588373519}]
但是有的时候我们会遇到不带双引号,例如下面的:
{result:133,total:154,Page:0,list:[{Prdh:"abcde"}]}
在php中用json_decode是无法解析这种不带双引号的,不规则的json格式。那我们只能把不正规变成正规,才能进行解析。利用下面代码就可以将json变成正规格式:
function json_decode_new($str, $m=false) {
if(preg_match('/\w:/', $str))
$str = preg_replace('/(\w+):/is', '"$1":', $str);
return json_decode($str, $m);
}
主要是应用了一个正则表达式。
二、ie7浏览器对于json格式要求比较严格,如果json写的格式不规范就会报错,我遇到的问题是提示提示缺少标识符、字符串或数字。当时我的json格式是这个样写的
var jsonstr={'name':'ceshi','title':'555'}
在我们看来是没有错误的,但是在ie7下面不行,我们必须在最后加上逗号,变成下面这种:
var jsonstr={'name':'ceshi','title':'555',}
以上就是我遇到的两个json的问题了,希望对大家有帮助
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。